package org.openclinic.service;

import java.util.List;

import org.openclinic.domain.Appointment;
import org.openclinic.domain.ScheduleHeader;
import org.openclinic.to.ReportParametersTO;

public interface AppointmentService {
	
	void cancel(long appointmentId);
	
	Appointment find(long appointmentId);
	
	Appointment find(long professionalId, long customerId); 
	
	int[][][] find(String aDate, long specialtyId, long professionalId, int startHour, int totalBusinessHours);
	
	List<Appointment> findByCustomer(long customerId);
	
	List<Appointment> findProfessionalTodayAppointments(long professionalId);
	
	List<Appointment> getReportResults(ReportParametersTO parameters);
	
	List<ScheduleHeader> getScheduleHeaders(String startDate);
	
	Appointment save(Appointment appointment);
	
}
